package com.linxin.reggie.common;

/**
 * 工具类
 * 基于 ThreadLocal 封装的工具类
 */

import lombok.extern.java.Log;

/**
 * 每次前端发送请求jvm都会重新开启一个线程
 * 同一次请求的线程的唯一标识id一样
 * ThreadLocal
 * 为每个线程开辟独立空间
 * 常用的方法为 get 和 set
 */
public class BaseContext extends ThreadLocal {
    // 获取session中的用户id
    private static ThreadLocal<Long> threadLocal = new ThreadLocal<Long>();

    /**
     * 将用户的id赋值给 threadLocal, 在LoginCheckFilter过滤器中获取用户id
     * @param id
     */
    public static void setCurrentId(long id) {
        threadLocal.set(id);
    }

    /**
     * 返回用户的id
     * @return
     */
    public static long getCurrentId() {
        return threadLocal.get();
    }
}
